←Select platform

MergeFiles(PDFPageRangeFromStream[],Stream) Method

Summary

Merges pages from multiple PDF files into one output stream PDF file.

Syntax

C#
C++/CLI
Java
Python
public void MergeFiles( 
   PDFPageRangeFromStream[] srcPages, 
   Stream outStream 
) 
public void MergeFiles( 
   Leadtools.Pdf.PDFPageRangeFromStream srcPages[],  
   leadtools.ILeadStream outStream 
); 
public: 
void MergeFiles(  
   Leadtools.Pdf.PDFPageRangeFromStream[]^ srcPages[], 
   Stream^ outStream 
)  
def MergeFiles(self,srcPages,outStream): 

Parameters

srcPages

The array indicating which page range should be merged. The array cannot be null. Each item in the array contains the source file, password (optional), first and last page.

outStream

Stream where the destination PDF file will be written. This value cannot be null.

Remarks

Each element of the srcPages array specifies a page interval (first and last page) and an optional source file stream.

If the source stream for any member of the srcPages array item is null, the operation will fail.

The output file will have the default properties and the resulting file will not be encrypted.

There is another version of this method, which takes file names instead of streams: PDFFile.MergeFiles(PDFPageRange[] srcPages, String destinationFileName).

This method is the most generic of all the PDFFile.ExtractPages and PDFFile.MergeWith methods and can be used to replace any of them.

In other words:

  1. PDFFile.ExtractPages is just like calling PDFFile.MergeFiles and setting all the source files to the same value.
  2. PDFFile.MergeWith is just like calling PDFFile.MergeFiles but converting all the pages in each source file (so setting PDFPageRange.FirstPageNumber = 1 and PDFPageRange.LastPageNumber = -1).

Example

C#
Java
import java.io.ByteArrayInputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.nio.file.StandardCopyOption; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.List; 
import java.util.Scanner; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.pdf.*; 
 
private static void pdfMergeTest() {

   String folder = "C:\temp\";
   String pdfFile1 = "1.pdf";
   String pdfFile2 = "2.pdf";
   String outputFile = "Result.pdf";
   try (FileInputStream pdfStreamFile1 = new FileInputStream(new File(folder + pdfFile1));
       FileInputStream pdfStreamFile2 = new FileInputStream(new File(folder + pdfFile2));
       FileOutputStream pdfStreamFile3 = new FileOutputStream(new File(folder + outputFile))) {

          PDFPageRangeFromStream[] range = new PDFPageRangeFromStream[2];

          range[0] = new PDFPageRangeFromStream();
          range[0].setFirstPageNumber(1);
          range[0].setLastPageNumber(-1);
          range[0].setStream(pdfStreamFile1);
          if (PDFFile.IsEncrypted(pdfFile1))
             range[0].setPassword("LEAD");

          range[1] = new PDFPageRangeFromStream();
          range[1].setFirstPageNumber(1);
          range[1].setLastPageNumber(-1);
          range[1].setStream(pdfStreamFile2);
          if (PDFFile.IsEncrypted(pdfFile2))
             range[1].setPassword("LEAD");

          PDFFile.mergeFiles(range, pdfStreamFile3);

   } catch (IOException e) {
      e.printStackTrace();
   }
}
using Leadtools.WinForms; 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Controls; 
using Leadtools.Drawing; 
using Leadtools.ImageProcessing; 
using Leadtools.Pdf; 
using Leadtools.Svg; 
 
 
private static void PDFMergeTest()
{
   string folder = @"C:\temp\";
   string pdfFile1 = "1.pdf";
   string pdfFile2 = "2.pdf";
   string outputFile = @"Result.pdf";
   using (FileStream pdfStreamFile1 = File.Open(folder + pdfFile1, FileMode.Open, FileAccess.Read, FileShare.Read))
   using (FileStream pdfStreamFile2 = File.Open(folder + pdfFile2, FileMode.Open, FileAccess.Read, FileShare.Read))
   using (FileStream pdfStreamFile3 = File.Create(folder + outputFile))
   {
      PDFPageRangeFromStream[] range = new PDFPageRangeFromStream[2];

      range[0].FirstPageNumber = 1;
      range[0].LastPageNumber = -1;
      range[0].Stream = pdfStreamFile1;
      if (PDFFile.IsEncrypted(pdfFile1))
         range[0].password = "LEAD";

      range[1].FirstPageNumber = 1;
      range[1].LastPageNumber = -1;
      range[1].Stream = pdfStreamFile2;
      if (PDFFile.IsEncrypted(pdfFile2))
         range[1].password = "LEAD";

      PDFFile.MergeFiles(range, pdfStreamFile3);
   }
}
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 

Requirements

Target Platforms

See Also

Help Version 23.0.2026.9.14
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2025 Apryse Sofware Corp. All Rights Reserved.

Leadtools.Pdf Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2025 Apryse Sofware Corp. All Rights Reserved.